package contegor.scire.core;

import java.io.Serializable;
import java.util.Iterator;

/**
 * Interfaz para encapsular {@link Task} y enviarlas como mensajes a cualquier sección de la nube
 * de conceptos.
 *
 * @version $Revision: 1.1 $
 * @author  Héctor Cirbián Pousa ($Author: hector $)
 */
@Version("$Id: Message.java,v 1.1 2009-10-12 21:13:44 hector Exp $")
@Deprecated
public interface Message<R> extends Serializable, Iterable<Task<R>> {

  /**
   * Devuelve el {@link Id} del {@link Container} objetivo del mensaje. En caso de que el mensaje no haya sido rellenado
   * y no tenga un objetivo fijado, devolverá null.
   * 
   * @return {@link Id} del {@link Container} objetivo.
   */
  public Id getTargetContainerId();

  /**
   * Devuelve la colección de {@link Task} encapsuladas por este mensaje. Todas deben tener el mismo
   * {@link Container} objetivo que el propio mensaje o ser independientes de todo {@link Container}.
   */
  public Iterator<Task<R>> iterator();

}
